using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("PracticeAIButton")]
	public class PracticeAIButton : PegUIElement
	{
		public UberText m_name => method_3<UberText>("m_name");

		public UberText m_backsideName => method_3<UberText>("m_backsideName");

		public GameObject m_frontCover => method_3<GameObject>("m_frontCover");

		public GameObject m_backsideCover => method_3<GameObject>("m_backsideCover");

		public HighlightState m_highlight => method_3<HighlightState>("m_highlight");

		public GameObject m_unlockEffect => method_3<GameObject>("m_unlockEffect");

		public GameObject m_questBang => method_3<GameObject>("m_questBang");

		public int m_PortraitMaterialIdx => method_2<int>("m_PortraitMaterialIdx");

		public GameObject m_rootObject => method_3<GameObject>("m_rootObject");

		public Transform m_upBone => method_3<Transform>("m_upBone");

		public Transform m_downBone => method_3<Transform>("m_downBone");

		public Transform m_coveredBone => method_3<Transform>("m_coveredBone");

		public int m_missionID => method_2<int>("m_missionID");

		public long m_deckID => method_2<long>("m_deckID");

		public bool m_covered => method_2<bool>("m_covered");

		public bool m_locked => method_2<bool>("m_locked");

		public bool m_infoSet => method_2<bool>("m_infoSet");

		public bool m_usingBackside => method_2<bool>("m_usingBackside");

		public TAG_CLASS m_class => method_2<TAG_CLASS>("m_class");

		public static float FLIPPED_X_ROTATION => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PracticeAIButton", "FLIPPED_X_ROTATION");

		public static float NORMAL_X_ROTATION => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "PracticeAIButton", "NORMAL_X_ROTATION");

		public string FLIP_COROUTINE => method_4("FLIP_COROUTINE");

		public Vector3 GLOW_QUAD_NORMAL_LOCAL_POS => method_2<Vector3>("GLOW_QUAD_NORMAL_LOCAL_POS");

		public Vector3 GLOW_QUAD_FLIPPED_LOCAL_POS => method_2<Vector3>("GLOW_QUAD_FLIPPED_LOCAL_POS");

		public PracticeAIButton(IntPtr address, string className)
			: base(address, className)
		{
		}

		public PracticeAIButton(IntPtr address)
			: this(address, "PracticeAIButton")
		{
		}

		public int GetMissionID()
		{
			return method_11<int>("GetMissionID", Array.Empty<object>());
		}

		public long GetDeckID()
		{
			return method_11<long>("GetDeckID", Array.Empty<object>());
		}

		public TAG_CLASS GetClass()
		{
			return method_11<TAG_CLASS>("GetClass", Array.Empty<object>());
		}

		public void PlayUnlockGlow()
		{
			method_8("PlayUnlockGlow");
		}

		public void Lock(bool locked)
		{
			method_8("Lock", locked);
		}

		public void SetInfo(string name, TAG_CLASS buttonClass, CardDef cardDef, int missionID, bool flip)
		{
			method_9("SetInfo", new Class276.Enum20[5]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Class,
				Class276.Enum20.I4,
				Class276.Enum20.Boolean
			}, name, buttonClass, cardDef, missionID, flip);
		}

		public void SetInfo(string name, TAG_CLASS buttonClass, CardDef cardDef, long deckID, bool flip)
		{
			method_9("SetInfo", new Class276.Enum20[5]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Class,
				Class276.Enum20.I8,
				Class276.Enum20.Boolean
			}, name, buttonClass, cardDef, deckID, flip);
		}

		public void CoverUp(bool flip)
		{
			method_8("CoverUp", flip);
		}

		public void Select()
		{
			method_8("Select");
		}

		public void Deselect()
		{
			method_8("Deselect");
		}

		public void Raise()
		{
			method_9("Raise", new Class276.Enum20[0]);
		}

		public void ShowQuestBang(bool shown)
		{
			method_8("ShowQuestBang", shown);
		}

		public void Flip()
		{
			method_8("Flip");
		}

		public UberText GetShowingNameMesh()
		{
			return method_14<UberText>("GetShowingNameMesh", Array.Empty<object>());
		}

		public UberText GetHiddenNameMesh()
		{
			return method_14<UberText>("GetHiddenNameMesh", Array.Empty<object>());
		}

		public Material GetShowingMaterial()
		{
			return method_14<Material>("GetShowingMaterial", Array.Empty<object>());
		}

		public void SetShowingMaterial(Material mat)
		{
			method_8("SetShowingMaterial", mat);
		}

		public Material GetHiddenMaterial()
		{
			return method_14<Material>("GetHiddenMaterial", Array.Empty<object>());
		}

		public void SetHiddenMaterial(Material mat)
		{
			method_8("SetHiddenMaterial", mat);
		}

		public GameObject GetShowingCover()
		{
			return method_14<GameObject>("GetShowingCover", Array.Empty<object>());
		}

		public GameObject GetHiddenCover()
		{
			return method_14<GameObject>("GetHiddenCover", Array.Empty<object>());
		}

		public void SetInfo(string name, TAG_CLASS buttonClass, CardDef cardDef, int missionID, long deckID, bool flip)
		{
			method_9("SetInfo", new Class276.Enum20[6]
			{
				Class276.Enum20.String,
				Class276.Enum20.ValueType,
				Class276.Enum20.Class,
				Class276.Enum20.I4,
				Class276.Enum20.I8,
				Class276.Enum20.Boolean
			}, name, buttonClass, cardDef, missionID, deckID, flip);
		}

		public void SetMissionID(int missionID)
		{
			method_8("SetMissionID", missionID);
		}

		public void SetDeckID(long deckID)
		{
			method_8("SetDeckID", deckID);
		}

		public void SetButtonClass(TAG_CLASS buttonClass)
		{
			method_8("SetButtonClass", buttonClass);
		}

		public void Raise(float time)
		{
			method_9("Raise", new Class276.Enum20[1] { Class276.Enum20.R4 }, time);
		}

		public void Depress()
		{
			method_8("Depress");
		}

		public new void OnOver(InteractionState oldState)
		{
			method_8("OnOver", oldState);
		}

		public new void OnOut(InteractionState oldState)
		{
			method_8("OnOut", oldState);
		}
	}
}
